from . import folder_util, server
from .ai.bs_rformer_nodes import NODE_CLASS_MAPPINGS as BS_RFORMER_NODE_CLASS_MAPPINGS
from .ai.bs_rformer_nodes import (
    NODE_DISPLAY_NAME_MAPPINGS as BS_RFORMER_NODE_DISPLAY_NAME_MAPPINGS,
)
from .ai.demucs_nodes import NODE_CLASS_MAPPINGS as DEMUCS_NODE_CLASS_MAPPINGS
from .ai.demucs_nodes import (
    NODE_DISPLAY_NAME_MAPPINGS as DEMUCS_NODE_DISPLAY_NAME_MAPPINGS,
)
from .ai.faster_whisper_nodes import (
    NODE_CLASS_MAPPINGS as FASTER_WHISPER_NODE_CLASS_MAPPINGS,
)
from .ai.faster_whisper_nodes import (
    NODE_DISPLAY_NAME_MAPPINGS as FASTER_WHISPER_NODE_DISPLAY_NAME_MAPPINGS,
)
from .ai.kotoba_whisper_nodes import (
    NODE_CLASS_MAPPINGS as KOTOBA_WHISPER_NODE_CLASS_MAPPINGS,
)
from .ai.kotoba_whisper_nodes import (
    NODE_DISPLAY_NAME_MAPPINGS as KOTOBA_WHISPER_NODE_DISPLAY_NAME_MAPPINGS,
)
from .ai.nemo_asr_nodes import NODE_CLASS_MAPPINGS as NEMO_ASR_NODE_CLASS_MAPPINGS
from .ai.nemo_asr_nodes import (
    NODE_DISPLAY_NAME_MAPPINGS as NEMO_ASR_NODE_DISPLAY_NAME_MAPPINGS,
)
from .ai.nue_asr_nodes import (
    NODE_CLASS_MAPPINGS as NUE_ASR_NODE_CLASS_MAPPINGS,
)
from .ai.nue_asr_nodes import (
    NODE_DISPLAY_NAME_MAPPINGS as NUE_ASR_NODE_DISPLAY_NAME_MAPPINGS,
)
from .ai.silero_vad_nodes import (
    NODE_CLASS_MAPPINGS as SILERO_VAD_NODE_CLASS_MAPPINGS,
)
from .ai.silero_vad_nodes import (
    NODE_DISPLAY_NAME_MAPPINGS as SILERO_VAD_NODE_DISPLAY_NAME_MAPPINGS,
)
from .ai.speach_mos import NODE_CLASS_MAPPINGS as SPEECH_MOS_NODE_CLASS_MAPPINGS
from .ai.speach_mos import (
    NODE_DISPLAY_NAME_MAPPINGS as SPEECH_MOS_NODE_DISPLAY_NAME_MAPPINGS,
)
from .basic_nodes import NODE_CLASS_MAPPINGS as BASIC_NODE_CLASS_MAPPINGS
from .basic_nodes import NODE_DISPLAY_NAME_MAPPINGS as BASIC_NODE_DISPLAY_NAME_MAPPINGS
from .edit_nodes import NODE_CLASS_MAPPINGS as EDIT_NODE_CLASS_MAPPINGS
from .edit_nodes import NODE_DISPLAY_NAME_MAPPINGS as EDIT_NODE_DISPLAY_NAME_MAPPINGS
from .filter_nodes import NODE_CLASS_MAPPINGS as FILTER_NODE_CLASS_MAPPINGS
from .filter_nodes import (
    NODE_DISPLAY_NAME_MAPPINGS as FILTER_NODE_DISPLAY_NAME_MAPPINGS,
)
from .spec_nodes import NODE_CLASS_MAPPINGS as TRANSFORM_NODE_CLASS_MAPPINGS
from .spec_nodes import (
    NODE_DISPLAY_NAME_MAPPINGS as TRANSFORM_NODE_DISPLAY_NAME_MAPPINGS,
)
from .visualize_node import NODE_CLASS_MAPPINGS as VISUALIZE_NODE_CLASS_MAPPINGS
from .visualize_node import (
    NODE_DISPLAY_NAME_MAPPINGS as VISUALIZE_NODE_DISPLAY_NAME_MAPPINGS,
)

folder_util.initialize()
server.initialize()

WEB_DIRECTORY = "./web"

# Keys should not be the same as those of other extensions
NODE_CLASS_MAPPINGS = {
    **BASIC_NODE_CLASS_MAPPINGS,
    **EDIT_NODE_CLASS_MAPPINGS,
    **FILTER_NODE_CLASS_MAPPINGS,
    **TRANSFORM_NODE_CLASS_MAPPINGS,
    **VISUALIZE_NODE_CLASS_MAPPINGS,
    # ai
    **DEMUCS_NODE_CLASS_MAPPINGS,
    **SILERO_VAD_NODE_CLASS_MAPPINGS,
    **FASTER_WHISPER_NODE_CLASS_MAPPINGS,
    **NUE_ASR_NODE_CLASS_MAPPINGS,
    **NEMO_ASR_NODE_CLASS_MAPPINGS,
    **SPEECH_MOS_NODE_CLASS_MAPPINGS,
    **KOTOBA_WHISPER_NODE_CLASS_MAPPINGS,
    **BS_RFORMER_NODE_CLASS_MAPPINGS,
}
NODE_DISPLAY_NAME_MAPPINGS = {
    **BASIC_NODE_DISPLAY_NAME_MAPPINGS,
    **EDIT_NODE_DISPLAY_NAME_MAPPINGS,
    **FILTER_NODE_DISPLAY_NAME_MAPPINGS,
    **TRANSFORM_NODE_DISPLAY_NAME_MAPPINGS,
    **VISUALIZE_NODE_DISPLAY_NAME_MAPPINGS,
    # ai
    **DEMUCS_NODE_DISPLAY_NAME_MAPPINGS,
    **SILERO_VAD_NODE_DISPLAY_NAME_MAPPINGS,
    **FASTER_WHISPER_NODE_DISPLAY_NAME_MAPPINGS,
    **NUE_ASR_NODE_DISPLAY_NAME_MAPPINGS,
    **NEMO_ASR_NODE_DISPLAY_NAME_MAPPINGS,
    **SPEECH_MOS_NODE_DISPLAY_NAME_MAPPINGS,
    **KOTOBA_WHISPER_NODE_DISPLAY_NAME_MAPPINGS,
    **BS_RFORMER_NODE_DISPLAY_NAME_MAPPINGS,
}
